-- 操作请求的用户名
local username = KEYS[1]
-- 时间窗口
local timeWindow = tonumber(ARGV[1])
-- 当前时间戳
local current = tonumber(ARGV[2])
-- 最大令牌数
local maxSize = tonumber(ARGV[3])


-- 需要限流的key
local key = "short-link:user-flow-risk-control:" .. username

-- 如果这一秒的窗口内的信息大于我们规定的，那么进行限流
if redis.call("ZCOUNT",key,current-1000,current) == maxSize  then
    return 0
end

-- 不大于将当前时间戳插入到zset中
redis.call("ZADD",key,current,current)

return 1

